class Solution {
    public int removeElement(int[] nums, int val) {
        //找到数，马上删除数
        //拿一个数记录数组长度
        // int len = nums.length;

        // for(int i = 0; i < len; i++){
        //     if( nums[i] == val ){
        //         for(int j = i; j < nums.length-1; j++){
        //             nums[j] = nums[j+1];
        //         }
        //         len--;
        //         i--;
        //     }
        // }
        // return len;
        //双指针优化，（题目没有要求顺序）
        //左指针向左走，遇到val 右指针直接赋值覆盖左边 右指针--
        int left = 0, right = nums.length;
        while( left < right){
            if(nums[left] == val){
                nums[left] = nums[right-1];
                right--;
                left--;
            }
            left++;
        }
        return right;
    }
}